home *** CD-ROM | disk | FTP | other *** search
/ Deutsche Edition 1 / Deutsche Edition 1.iso / amok / 051-060 / amok52 / gadgeted / txt / arpfilereq.mod < prev    next >
Text File  |  1993-11-04  |  2KB  |  78 lines

  1. (*---------------------------------------------------------------------------
  2.     :Program.     ARPFileReq.mod
  3.     :Contents.      Simple Benutzung des ARP Filerequesters
  4.     :Author.      Bernd Preusing
  5.     :Address.      Gerhardstr. 16  D-2200 Elmshorn
  6.     :Phone.      04121/22486
  7.     :Copyright.      Public Domain
  8.     :Language.      Modula-2
  9.     :Translator.  M2Amiga V3.2e
  10.     :History.      V1.0 09-Oct-89 Bernd Preusing
  11.     :Imports.      ARP library
  12. ---------------------------------------------------------------------------*)
  13. IMPLEMENTATION MODULE ARPFileReq;
  14.  
  15. FROM SYSTEM    IMPORT    ADR, ADDRESS;
  16. FROM ARP    IMPORT    FileRequest, FileRequester, FileName, DirName,
  17.             FileReqFlags, FileReqFlagSet;
  18. FROM Str    IMPORT    Copy, LastPos, Length, Concat;
  19.  
  20. VAR
  21.   FR:FileRequester;
  22.   File, Dir: ARRAY[0..79] OF CHAR;
  23.  
  24. (* $R- $V- $F- *)
  25.  
  26. PROCEDURE GetPath(VAR f,d:ARRAY OF CHAR);
  27. VAR pos,i:INTEGER;
  28. BEGIN
  29.   Copy(d,f);
  30.   pos:=LastPos(f,-1,'/');
  31.   IF pos<0 THEN
  32.     pos:=LastPos(f,-1,':');
  33.   END;
  34.   IF pos>=0 THEN
  35.     IF d[pos]=':' THEN d[pos+1]:=0C ELSE d[pos]:=0C END;
  36.     INC(pos);
  37.     FOR i:=pos TO Length(f) DO
  38.       f[i-pos]:=f[i]
  39.     END;
  40.     f[i]:=0C;
  41.   ELSE
  42.     d[0]:=0C
  43.   END;
  44. END GetPath;
  45.  
  46. PROCEDURE FileReq(VAR FName:ARRAY OF CHAR; Window:ADDRESS; Title:ARRAY OF CHAR;
  47.          flag:BOOLEAN):    BOOLEAN;
  48. BEGIN
  49.   Copy(File,FName);
  50.   GetPath(File,Dir);
  51.  
  52.   FR.hail:=ADR(Title);
  53.   IF flag THEN
  54.     FR.funcFlags:=FileReqFlagSet{};
  55.   ELSE
  56.     FR.funcFlags:=FileReqFlagSet{doColor};
  57.   END;
  58.   FR.ddef      := ADR(File);
  59.   FR.ddir      := ADR(Dir);
  60.   FR.wind      := Window;
  61.   FR.reserved1 := 0;
  62.   FR.function  := NIL;
  63.   FR.reserved2 := 0;
  64.  
  65.   IF FileRequest(ADR(FR))#NIL THEN
  66.     IF (Length(Dir)>0) AND (Dir[Length(Dir)-1]#':') THEN
  67.       Concat(Dir,'/');
  68.     END;
  69.     Concat(Dir,File);
  70.     Copy(FName,Dir);
  71.     RETURN TRUE
  72.   ELSE
  73.     RETURN FALSE;
  74.   END;
  75. END FileReq;
  76.  
  77. END ARPFileReq.mod
  78.